<?php

class NewsInstall
{
	
	private $_config = array(
		'name' => 'news',
		'title' => 'News module',
		'dependencies' => array(
			'editor',
			'languages' => array(
				'{{news}}' => array(
					'fields' => array (
						'title' => 'varchar(255) NOT NULL',
						'preview' => 'text NOT NULL',
						'body' => 'text NOT NULL'
					)
				),
			),
			'seo' => array(
				'rules' => array(
					'news/default/index'=>array(
						'template'=>'news',
						'model'=>'News',
						'path'=>'application.modules.news.models.News'
					),
					'news/default/view'=>array(
						'template'=>'news/<title>',
						'model'=>'News',
						'path'=>'application.modules.news.models.News'
					),
				),
			),
		),
		'import' => array(
			'application.modules.news.NewsModule',
		)
	);

	public function config()
	{
		return $this->_config;
	}
	
	public function install()
	{
		$languages = Languages::model()->getLanguages();

		foreach ($languages as $language)
		{
			foreach ($this->_config['dependencies']['languages']['{{news}}']['fields'] as $field => $type)
			{
				$keys[] = $field.'_'.$language['code'];
				$values[] = ':'.$field.'_'.$language['code'];
				$fields[] = "`".$field."_".$language['code']."` ".$type.",";
			}
		}

		$sql = "DROP TABLE IF EXISTS {{news}};";
		Yii::app()->db->createCommand($sql)->execute();

		$sql="
	CREATE TABLE IF NOT EXISTS {{news}} (
	  `id` int(11) NOT NULL AUTO_INCREMENT,
	  `active` tinyint(1) NOT NULL,";
		$sql .= implode("", $fields);
		$sql .= "
	  `creation_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
	  PRIMARY KEY (`id`)
	) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";
		Yii::app()->db->createCommand($sql)->execute();

		$sql="INSERT INTO {{news}} (active, ".implode(', ', $keys).", creation_date) VALUES (:active, ".implode(', ', $values).", :creation_date);";
		$command = Yii::app()->db->createCommand($sql);

		$command->bindValue(":active", 1, PDO::PARAM_INT);
		foreach ($languages as $language)
		{
			$command->bindValue(":title_".$language['code'], Yii::t('NewsModule.install', 'Россияне на майские праздники будут отдыхать четыре дня', array(), null, $language['code']), PDO::PARAM_STR);
			$command->bindValue(":preview_".$language['code'], Yii::t('NewsModule.install', 'Россияне на майские праздники будут отдыхать четыре дня подряд - c 6 по 9 мая включительно, сообщает РИА Новости со ссылкой на заявление премьер-министра России Владимира Путина. Такой отдых потребует переноса двух выходных: суббота 5 мая и суббота 12 мая', array(), null, $language['code']), PDO::PARAM_STR);
			$command->bindValue(":body_".$language['code'], Yii::t('NewsModule.install', '<p>Россияне на майские праздники будут отдыхать четыре дня подряд - c 6 по 9 мая включительно, сообщает РИА Новости со ссылкой на заявление премьер-министра России Владимира Путина. Такой отдых потребует переноса двух выходных: суббота 5 мая и суббота 12 мая будут рабочими днями, выходные будут перенесены на 7 и 8 мая. "Прошу соответствующим образом выстроить работу", - заявил Путин. Объясняя перенос выходных, премьер-министр отметил: "Многие люди высказывают заинтересованность в том, чтобы в это время было больше выходных дней, чтобы можно было поехать на участки, на огороды". В начале марта 2012 года Путин пообещал, что с 2013 года в России часть новогодних праздников будет перенесена на май. Сейчас россияне в новый год отдыхают с 1 по 10 января, Путин предложил ограничить каникулы Рождеством, то есть 7 января, "а все, что накапливается дальше переносить, скажем, на май". Россия - одна из немногих стран мира, в которых будние дни становятся выходными в том случае, если праздники выпадают на обычные календарные выходные (субботу и воскресенье), и наоборот. В 2012 году в России из 366 дней 117 нерабочие.</p>', array(), null, $language['code']), PDO::PARAM_STR);
		}
		$command->bindValue(":creation_date", "2012-03-16 01:53:00", PDO::PARAM_STR);
		$command->execute();

		$command->bindValue(":active", 1, PDO::PARAM_INT);
		foreach ($languages as $language)
		{
			$command->bindValue(":title_".$language['code'], Yii::t('NewsModule.install', 'Второй по размерам итальянский банк сообщил об убытке в 8 миллиардов евро', array(), null, $language['code']), PDO::PARAM_STR);
			$command->bindValue(":preview_".$language['code'], Yii::t('NewsModule.install', 'Один из крупнейших итальянских банков - Intesa SanPaolo - по итогам 2011 года получил убыток в размере 8,2 миллиарда евро. Об этом сообщается в пресс-релизе финансовой организации. В 2010 году банк заработал 2,7 миллиарда евро чистой прибыли. Убыток второ', array(), null, $language['code']), PDO::PARAM_STR);
			$command->bindValue(":body_".$language['code'], Yii::t('NewsModule.install', '<p>Один из крупнейших итальянских банков - Intesa SanPaolo - по итогам 2011 года получил убыток в размере 8,2 миллиарда евро. Об этом сообщается в пресс-релизе финансовой организации. В 2010 году банк заработал 2,7 миллиарда евро чистой прибыли. Убыток второго по размерам банка в Италии связан со списанием обесценившихся активов на сумму в 10,2 миллиарда евро, в числе которых - греческие долги на 400 миллионов евро. Intesa не уточнил деталей о списанных активах. Известно, что часть списаний связана с покупкой банка Carifirenze, а также с событиями 2007 года, когда произошло слияние Banca Intesa и Sanpaolo IMI. В сообщении отмечается, что без учета списаний по итогам 2011 года финорганизация заработала 2 миллиарда евро. Даже в этом случае результат оказался на четверть ниже, чем годом ранее. Основную часть списаний банк осуществил в четвертом квартале 2011 года, по итогам которого убыток превысил 10,1 миллиарда евро. За аналогичный период в 2010 году Intesa заработал 505 миллионов евро. Как указывается в сообщении Intesa, у банка стабильное финансовое положение, что отчасти подтверждается реакцией фондового рынка. После публикации отчета акции Intesa резко подорожали на 4 процента (по состоянию на 20:20 по Москве). Reuters отмечает, что Intesa стал первым итальянским банком, вернувшимся на корпоративный рынок заимствований после перерыва, вызванного долговым кризисом. В январе этого года финорганизация выпустила облигации на 1,5 миллиарда евро. Кроме того, Intesa занял у ЕЦБ в декабре и феврале 36 миллиардов евро - больше, чем любой другой итальянский банк.</p>', array(), null, $language['code']), PDO::PARAM_STR);
		}
		$command->bindValue(":creation_date", "2012-03-16 01:57:38", PDO::PARAM_STR);
		$command->execute();
	}

	public function uninstall()
	{
		Yii::app()->db->createCommand()->dropTable('{{news}}');
	}
}